import { defineConfig } from 'vite'
import vue from '@vitejs/plugin-vue'
import vueJsx from '@vitejs/plugin-vue-jsx'
import AutoImport from 'unplugin-auto-import/vite'
import Components from 'unplugin-vue-components/vite'
import { ElementPlusResolver } from 'unplugin-vue-components/resolvers'
import UnoCSS from 'unocss/vite'
import { resolve } from 'path'

// https://vite.dev/config/
export default defineConfig({
  plugins: [
    vue(),
    vueJsx(),
    UnoCSS(),
    // unplugin-auto-import
    AutoImport({
      imports: [
        'vue',
        'vue-router',
        'pinia',
      ],
      resolvers: [ElementPlusResolver()],
      dts: 'types/auto-imports.d.ts' // 生成自动导入的声明文件
    }),
    // unplugin-vue-components
    Components({
      resolvers: [
        ElementPlusResolver({
          importStyle: 'sass',
          directives:true,
          importIcons: true,
        })
      ],
      // 指定自动扫描的本地组件目录（默认 src/components）。
      // dirs: ['src/components'], // 自动导入本地组件目录
      dts: 'types/components.d.ts'  // 生成组件声明文件
    }),
  ],
  resolve: {
    alias: {
      '@': resolve(__dirname, 'src')
    }
  },
  css: {
    preprocessorOptions: {
      less: {
        javascriptEnabled: true,  // 允许 Less 中使用 JavaScript 表达式
        additionalData: `@import "@/styles/variables.module.less";` // 全局引入
      }
    }
  }
  // 显式指定 TS 配置路径（可选，默认会自动解析）
  // esbuild: {
  //   tsconfig: 'tsconfig.app.json'
  // }
})
